package com.diego.sistema.pais;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;

public class PaisDAOHibernate implements PaisDAO {

	private Session session;
	
	public Session getSession() {
		return session;
	}

	public void setSession(Session session) {
		this.session = session;
	}
	
	@Override
	public void guardar(Pais pais) {
		this.session.save(pais);
		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Pais> listar() {
		Criteria lista = session.createCriteria(Pais.class);
		return lista.list();
	}

	@Override
	public void borrar(Pais pais) {
		this.session.delete(pais);		
	}
	
	@Override
	public Pais buscar(String string) {
		Query consultaNombre = this.session
				.createQuery("from Pais p where p.nombre like :nombre");
		consultaNombre.setString("nombre", "%" + string + "%");
		return (Pais) consultaNombre.uniqueResult();
	}

	@Override
	public void modificar(Pais pais) {
		this.session.update(pais);		
	}

	@Override
	public Pais buscarPorId(Integer id) {
		
		return (Pais) this.session.get(Pais.class, id);
	}

	@Override
	public void eliminar(Pais pais) {
		this.session.delete(pais);
		
	}

}
